/*
 * =====================================================================================
 *
 *       Filename:  dup.c
 *
 *    Description:  demo dup
 *
 *        Version:  1.0
 *        Created:  05/04/2012 03:18:58 PM
 *       Revision:  none
 *       Compiler:  gcc
 *
 *         Author:  Zhiyi Wu (Z.W), zhiyiw@uoregon.edu
 *        Company:  University of Oregon
 *
 * =====================================================================================
 */

#include <unistd.h>
#include <stdio.h>
int main()
{
	int fildes[2];
	pid_t pid;
	int i, j;
	char buf[256];
	if (pipe(fildes) < 0 || (pid = fork()) < 0) 
	{
		fprintf(stderr, "error!n");
		return 1;
	}
	if (pid == 0)
		　　　 {
			close(fildes[1]);　　　　　　　　　　　　　　　　　　 
				dup2(fildes[0], 0);　　　　　　　　　　　　　　　　
				close(fildes[0]);
			gets(buf);　　　　　　　　　　　　　　　　　　　　　　　　
				fprintf(stderr, "child:[%s]n", buf);
			return 2;
		}
	close(fildes[0]);
	dup2(fildes[1], 1);　　　　　　　　　　　　　　　　　　
		close(fildes[1]);
	puts("Hello!");　　　　　　　　　　　　　　　　　　　　　　　
		return 0;　　　　　　　　　　　　　　　　　　　　　　　　　　 
}
